#!user/bin/env python3
# -- coding: utf-8 --
# @Createtime：2023/9/11 16:20
# @Updatetime：16:20
# @Author：Test008
# @File：main
# @Description：
"""
面向对象：数据分析案例，主业务逻辑代码
实现步骤：
1，设计一个类，可以完成数据的封装
2，设计一个抽象类，定义文件的读取的功能，并使用子类实现具体的功能
3，读取文件，生产数据对象
4，进行数据需求的逻辑计算(计算每一天的销售额)
5，通过pyechart进行图形绘制
"""
# from data_define import Record
# from file_define import TextFileReader, JsonFileReader, FileReader
# from pyecharts.charts import Bar
# from pyecharts.options import *
# from pyecharts.globals import ThemeType
#
# text_file_reader = TextFileReader("../../../static/doc/2011年1月销售数据.txt")
# json_file_reader = JsonFileReader("../../../static/doc/2011年2月销售数据JSON.txt")
#
# jan_data: list[Record] = text_file_reader.read_data()
# feb_data: list[Record] = json_file_reader.read_data()
#
# # 合并
# all_data: list[Record] = jan_data + feb_data
# # 数据计算
# # {"2011-01-01":1232,"2011-01-02":132,"2011-01-03":7621}
# data_dict = {}
# for record in all_data:
#     if record.date in data_dict.keys():
#         data_dict[record.date] += record.money
#     else:
#         data_dict[record.date] = record.money
#
# # 可视化图表开发y
# bar = Bar(init_opts=InitOpts(theme=ThemeType.ESSOS))
# bar.add_xaxis(list(data_dict.keys()))  # 添加x轴的数据
# bar.add_yaxis("销售额", list(data_dict.values()), label_opts=LabelOpts(is_show=False))  # 添加y轴的数据
# bar.set_global_opts(
#     title_opts=TitleOpts(title="每日销售额")
# )
# bar.render("每日销售额柱状图.html")

# from data_define import Record
# from pyecharts.charts import Bar
# from pyecharts.options import *
# from pyecharts.globals import ThemeType
# from file_define import ReaderFile, TextReadfile, JsonReadfile

# text_read_file = TextReadfile("../../../static/doc/2011年1月销售数据.txt")
# json_read_file = JsonReadfile("../../../static/doc/2011年2月销售数据JSON.txt")
#
# jen_data: list[Record] = text_read_file.read_data()
# fen_data: list[Record] = json_read_file.read_data()
# all_data: list[Record] = jen_data + fen_data
# data_dict = {}
# for record in all_data:
#     if record.date in data_dict.keys():
#         data_dict[record.date] += record.money
#     else:
#         data_dict[record.date] = record.money
#
# bar = Bar(
#     init_opts=InitOpts(theme=ThemeType.ROMA)
# )
# bar.add_xaxis(list(data_dict.keys()))
# bar.add_yaxis("销售额", list(data_dict.values()), label_opts=LabelOpts(is_show=False))
# bar.set_global_opts(
#     title_opts=TitleOpts(
#         is_show=True,
#         title="2011年一季度每日销售额"
#     )
# )
# bar.render("一季度每日销售额柱状图.html")

from data_define import *
from file_define import *
from pyecharts.charts import Bar
from pyecharts.options import *
from pyecharts.globals import ThemeType

json_text_reader = JsonReader("../../../static/doc/2011年2月销售数据JSON.txt")
text_reader = TxtReader("../../../static/doc/2011年1月销售数据.txt")
february_data = json_text_reader.read_data()
jenuary_data = text_reader.read_data()
all_data = jenuary_data + february_data
dict_data = {}
for item in all_data:
    if item.date in dict_data:
        dict_data[item.date] += item.money
    else:
        dict_data[item.date] = item.money

bar = Bar(init_opts=InitOpts(theme=ThemeType.LIGHT))
bar.add_xaxis(list(dict_data.keys()))
bar.add_yaxis("销售额", list(dict_data.values()), label_opts=LabelOpts(is_show=False))
bar.set_global_opts(
    title_opts=TitleOpts(title="每日销售额")
)

bar.render()
